#include <iostream>

using namespace std;

struct Node
{
    int data =0;
    Node* next;
};


int main(int argc, char const *argv[])
{
    // 头节点(实体)
    Node* head= new Node;
    // 尾节点(指针)
    Node* tail= head;
    // 用len记录链表长度
    int len =1;

    int n;
    cin >> n;
    
    for (int i = 0;i < n; i++ )
    {   
        // 新建待插入节点(实体)
        Node* p = new Node;
        p->data = i;
        p->next = NULL;

        // 将新节点接在尾巴上
        tail->next = p;
        // 当前尾巴切换成新加入的节点
        tail = p;
        len++;
    }
    

    for (Node* p=head->next; p != nullptr ; p = p->next)
    {   
        
        cout << p->data << "\n";

    }
    


    return 0;
}
